//管理 共享的数据

//管理的状态 
let initState = {
    datalist: [//typeId=1推荐 type=2小说 type=3儿童
        { id: 1001, typeId: 1, title: '王阳明', ms: '王阳明描述', img: '/img/01.jpg', sub: true, collec: true },
        { id: 1002, typeId: 1, title: '庆余年2', ms: '庆余年2描述', img: '/img/02.jpg', sub: false, collec: false },
        { id: 1003, typeId: 1, title: '温柔又美好的友谊', ms: '温柔又美好的友谊描述', img: '/img/03.jpg', sub: false, collec: false },
        { id: 2001, typeId: 2, title: '后羿射日', ms: '后羿射日描述', img: '/img/04.jpg', sub: false, collec: false },
        { id: 2002, typeId: 2, title: '三体', ms: '三体描述', img: '/img/21.jpg', sub: false, collec: false },
        { id: 2003, typeId: 2, title: '哈利波特', ms: '哈利波特描述', img: '/img/22.jpg', sub: false, collec: false },
        { id: 3001, typeId: 3, title: '旧事理', ms: '旧事理描述', img: '/img/23.jpg', sub: false, collec: false },
        { id: 3002, typeId: 3, title: '一路繁花', ms: '一路繁花描述', img: '/img/31.jpg', sub: false, collec: false },
        { id: 3003, typeId: 3, title: '尔尔星海', ms: '尔尔星海描述', img: '/img/32.jpg', sub: false, collec: false },
    ]
}

//管理员函数 修改状态 返回新状态
function reducer(oldstate, action) {
    //深拷贝 新对象
    let newlist = JSON.parse(JSON.stringify(oldstate))
    //解构action
    let { type, payload } = action

    //订阅状态切换
    if(type==='change_sub'){
        newlist.datalist.forEach(item=>{
            if(item.id == payload){
                item.sub= !item.sub
            }
        })
    }

    //收藏状态切换
    if(type=='change_collec'){
        newlist.datalist.forEach(item=>{
            if(item.id===payload){
                item.collec = !item.collec
            }
        })
    }


    return newlist
}


//导出状态和管理员函数 给App的useRedcer
export { reducer, initState }